#ifndef __SERVER_H__
#define __SERVER_H__

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <string.h>
#include <sqlite3.h>
#include <signal.h>
#include <time.h>


#define UDBNAME "user"
#define HDBNAME "hes"

#define ERRLOG(errmsg)                                      \
    do                                                      \
    {                                                       \
        printf("%s-%s-%d\n", __FILE__, __func__, __LINE__); \
        perror(errmsg);                                     \
        exit(1);                                            \
    } while (0)

typedef struct
{
    int flags;
    int num;
    char name[32];
    char text1[32];
    char text2[32];
    char text3[32];
} DATA; //与客户端的信息交互结构体

typedef struct
{
    int fd;
    sqlite3 *db;
} TEMP; //用于将文件描述符与数据库句柄传输给线程使用

void sqliteinsert(TEMP *a, DATA *b);
void sqliteget(TEMP *a, DATA *b);
void sqlite_g(TEMP *a, DATA *b);
void timeget(char *ret);
void sqlite_ch(TEMP *a, DATA *b);
int sqlite_init(TEMP *a);
void sqlite_del(TEMP *a, DATA *b);
int sqlite_hes_del(TEMP *a, DATA *b);

#endif